Transforming programs into networks : call-graph caching, applications, and examples
نویسنده
چکیده
There are computer programs that use the same flow of control when run on different inputs. This redundancy in their program execution traces can be exploited by preserving suitably abstracted callgraphs for subsequent reuse. We introduce a new programming transformation Call-Graph Caching (CGC) which partially evaluates the control flow of sets of such programs into a network formed from their call-graphs. CGC can automatically generate efficient state-saving structure-sharing incremental algorithms from simple program specifications. As an example, we show how a straightforward, inefficient LISP program for conjunctive match is automatically transformed into the RETE network algorithm. Simple and understandable changes to elegant functional (and other) programs are automatically translated by CGC into new efficient incremental network algorithms; this abstraction mechanism is shown for a class of conjunctive matching algorithms. We establish criteria for the appropriate application of CGC to other Al methods, such as chart parsing, consistency maintenance, and analogical reasoning. Detailed pedagogical examples are also presented. publication was supported in part by grant R29 LM 04707 from the National Library of Medicine. Table of
منابع مشابه
Call-Graph Caching: Transforming Programs into Networks
There are computer programs that use the same flow of control when run on different inputs. This redundancy in their program execution traces can be exploited by preserving suitably abstracted call-graphs for subsequent reuse. We introduce a new programming transformation Call-Graph Caching (CGC) which partially evaluates the control flow of sets of such programs into a network formed from thei...
متن کاملTransforming Conjunctive Match into Rete: a Call-Graph Caching Approach
Conjunctive match is often used in Artificial Intelligence as the kernel of a pattern-directed inference [37] engine. Conjunctive match entails generating and testing all possible combinations of objects against a pattern of constraints. While simple to program, it is an expensive, exponential cost computation. To reduce this average match cost in production system engines, the RETE match algor...
متن کاملcient On - the - y Analysis of ProgramBehavior and Static Cache Simulation ?
The main contributions of this paper are twofold. First, a general framework for control-ow partitioning is presented for eecient on-they analysis, i.e. for program behavior analysis during execution using a small number of instrumentation points. The formal model is further reened for certain analyses by transforming a program's call graph into a function-instance graph. Performance evaluation...
متن کاملFuzzy Number-Valued Fuzzy Graph
Graph theory has an important role in the area of applications of networks and clustering. In the case of dealing with uncertain data, we must utilize ambiguous data such as fuzzy value, fuzzy interval value or values of fuzzy number. In this study, values of fuzzy number were used. Initially, we utilized the fuzzy number value fuzzy relation and then proposed fuzzy number-value f...
متن کاملA Novel Caching Strategy in Video-on-Demand (VoD) Peer-to-Peer (P2P) Networks Based on Complex Network Theory
The popularity of video-on-demand (VoD) streaming has grown dramatically over the World Wide Web. Most users in VoD P2P networks have to wait a long time in order to access their requesting videos. Therefore, reducing waiting time to access videos is the main challenge for VoD P2P networks. In this paper, we propose a novel algorithm for caching video based on peers' priority and video's popula...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2015